package com.letian.info.mapper;

import java.util.List;
import com.letian.info.domain.InfoLabel;
import org.apache.ibatis.annotations.Param;

/**
 * 标签信息Mapper接口
 * 
 * @author bmz
 * @date 2023-04-05
 */
public interface InfoLabelMapper 
{
    /**
     * 删除用户文章标签
     *
     * @param userId 作者信息
     * @return 结果
     */
    public int deleteUserLabel(Long userId);

    /**
     * 修改用户标签
     *
     * @param userId 作者信息
     * @param userName 作者信息
     * @param labelIds 作者信息
     * @return 结果
     */
    public int batchInsertUserLabel(@Param("labelIds") Long[] labelIds, @Param("userId") Long userId, @Param("userName") String userName);

    /**
     * 查询标签信息
     * 
     * @param labelId 标签信息主键
     * @return 标签信息
     */
    public InfoLabel selectInfoLabelByLabelId(Long labelId);

    /**
     * 查询标签信息列表
     * 
     * @param infoLabel 标签信息
     * @return 标签信息集合
     */
    public List<InfoLabel> selectInfoLabelList(InfoLabel infoLabel);

    /**
     * 查询用户标签信息列表 current = true | false 表示是否是用户的标签
     * @param userId
     * @param type
     * @return
     */
    public List<InfoLabel> selectInfoUserLabelVo(@Param("userId") Long userId, @Param("type") String type);

    /**
     * 新增标签信息
     * 
     * @param infoLabel 标签信息
     * @return 结果
     */
    public int insertInfoLabel(InfoLabel infoLabel);

    /**
     * 修改标签信息
     * 
     * @param infoLabel 标签信息
     * @return 结果
     */
    public int updateInfoLabel(InfoLabel infoLabel);

    /**
     * 删除标签信息
     * 
     * @param labelId 标签信息主键
     * @return 结果
     */
    public int deleteInfoLabelByLabelId(Long labelId);

    /**
     * 批量删除标签信息
     * 
     * @param labelIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteInfoLabelByLabelIds(Long[] labelIds);
}
